package proto

import (
	"regexp"
	D "websocket_apn/define"
	"websocket_apn/log"
)

/*
71 AB 00 00 13 29 00 00 01 2D 00 00 02 D4 08 94 30 6F
0A 08 08 85 F0 14 12 02 35 35
0A 07 08 84 F0 14 12 01 36
0A 08 08 87 F0 14 12 02 31 31
0A 09 08 86 F0 14 12 03 31 30 33
0A 08 08 81 F0 14 12 02 35 34
0A 08 08 80 F0 14 12 02 35 33
0A 08 08 83 F0 14 12 02 38 32
0A 07 08 82 F0 14 12 01 32
0A 09 08 8D E8 14 12 03 32 31 31
0A 08 08 8B 80 0D 12 02 31 30
0A 07 08 8A 80 0D 12 01 34
0A 08 08 8C E8 14 12 02 31 30
0A 07 08 89 80 0D 12 01 34
0A 08 08 8F E8 14 12 02 36 31
*/
//解析用户背包数据
func ParasUserBagInfo(dataBytes []byte) []D.UserBagInfo {
	var allInfo []D.UserBagInfo
	data := BytesToHexStr(dataBytes)
	// 定义正则表达式                                1 礼物ID                  2 礼物数量
	re := regexp.MustCompile(`0A[0-9A-F]{2}(08([0-9A-F]{6})12[0-9A-F]{2}((?:3[0-9])+))`)
	res := re.FindAllStringSubmatch(data, -1)
	if len(res) == 0 {
		log.Errorf("解析数据失败-%s", data)
	}
	for _, regRes := range res {
		info := D.UserBagInfo{
			Str:    regRes[1],                           //数据
			ID:     regRes[2],                           //物品ID
			Num:    int32(HexDataStrToInt64(regRes[3])), //物品数量
			NumStr: regRes[3],                           //物品数量16进制字符串
		}
		//log.Infof("ID %s = %d", info.ID, info.Num)
		allInfo = append(allInfo, info)
	}
	return allInfo
}
